/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.magicfan.mms.api.query;

import java.util.List;

/**
 * 响应
 * @author sixsigma
 */
public interface Response<T> extends AutoCloseable {

    List<T> get(int page);

    /**
     * 获取实际数据页数.若超出响应最多可查询页数时,返回最大可查询页数.
     *
     * @return
     */
    int getPageCount();

    /**
     * 当前页码,当改变页面参数时,页码自动归0.
     *
     * @return
     */
    int getPageNo();

    boolean isFirst();

    boolean hasNext();

    List<T> next();

    void remove();

    /**
     * 设置响应最多查询页数
     *
     * @param size
     */
    void setMaxResponseSize(int size);

    /**
     * 设置每页数据数
     *
     * @param size
     */
    void setPageSize(int size);
}
